import { reqCartList,reqDeleteCartById, reqUpdateCheckedByid } from "@/api"



const state = {
    cartList:[]
}
const mutations = {
    GETCARTLIST(state,cartList){
        state.cartList = cartList;
    }
}
const actions = {
    async getCartList({ commit }) {
        let result = await reqCartList();
       
        //如果成功
        if (result.code == 200) {
            commit('GETCARTLIST', result.data);
        }
    },
     //删除某一个产品的操作
    //一定要切记:action第一个参数（minStore） 第二个参数:dispatch的载荷（传递过来的数据）
    async deleteCartListById({ commit }, skuId) {
        //删除某一个产品的接口：服务器会通知删除成功与失败
        let result = await reqDeleteCartById(skuId);
        
        //删除购物车函数:也需要返回成功与失败标记，因为组件哪里，需要知道删除成功、失败
        if (result.code == 200) {
            return 'ok';
        } else {
            return Promise.reject(new Error('faile'));
        }

    },
    async updateCheckedById({ commit }, { skuId, isChecked }) {
        let result = await reqUpdateCheckedByid (skuId, isChecked);
        //修改成功
        if (result.code == 200) {
            return 'ok';
        } else {
            return Promise.reject(new Error('faile'));
        }
    }
    ,
    
    
}
const getters = {
    cartList(state){
        return state.cartList[0] ||{}
    },
    //计算出来的购物车数据
    
 
}

export default {
    state,
    mutations,
    actions,
    getters
}
